↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
perm_in_ga(X, .(X0, Y)) → U3_ga(X, X0, Y, app1_in_agg(X1, .(X0, X2), X))
app1_in_agg(.(X0, X), Y, .(X0, Z)) → U1_agg(X0, X, Y, Z, app1_in_aga(X, Y, Z))
app1_in_aga(.(X0, X), Y, .(X0, Z)) → U1_aga(X0, X, Y, Z, app1_in_aga(X, Y, Z))
app1_in_aga([], Y, Y) → app1_out_aga([], Y, Y)
U1_aga(X0, X, Y, Z, app1_out_aga(X, Y, Z)) → app1_out_aga(.(X0, X), Y, .(X0, Z))
U1_agg(X0, X, Y, Z, app1_out_aga(X, Y, Z)) → app1_out_agg(.(X0, X), Y, .(X0, Z))
app1_in_agg([], Y, Y) → app1_out_agg([], Y, Y)
U3_ga(X, X0, Y, app1_out_agg(X1, .(X0, X2), X)) → U4_ga(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
app2_in_gaa(.(X0, X), Y, .(X0, Z)) → U2_gaa(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
app2_in_aaa(.(X0, X), Y, .(X0, Z)) → U2_aaa(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
app2_in_aaa([], Y, Y) → app2_out_aaa([], Y, Y)
U2_aaa(X0, X, Y, Z, app2_out_aaa(X, Y, Z)) → app2_out_aaa(.(X0, X), Y, .(X0, Z))
U2_gaa(X0, X, Y, Z, app2_out_aaa(X, Y, Z)) → app2_out_gaa(.(X0, X), Y, .(X0, Z))
app2_in_gaa([], Y, Y) → app2_out_gaa([], Y, Y)
U4_ga(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → U5_ga(X, X0, Y, perm_in_aa(Z, Y))
perm_in_aa(X, .(X0, Y)) → U3_aa(X, X0, Y, app1_in_aga(X1, .(X0, X2), X))
U3_aa(X, X0, Y, app1_out_aga(X1, .(X0, X2), X)) → U4_aa(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
U4_aa(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → U5_aa(X, X0, Y, perm_in_aa(Z, Y))
perm_in_aa([], []) → perm_out_aa([], [])
U5_aa(X, X0, Y, perm_out_aa(Z, Y)) → perm_out_aa(X, .(X0, Y))
U5_ga(X, X0, Y, perm_out_aa(Z, Y)) → perm_out_ga(X, .(X0, Y))
perm_in_ga([], []) → perm_out_ga([], [])
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PrologToPiTRSProof
perm_in_ga(X, .(X0, Y)) → U3_ga(X, X0, Y, app1_in_agg(X1, .(X0, X2), X))
app1_in_agg(.(X0, X), Y, .(X0, Z)) → U1_agg(X0, X, Y, Z, app1_in_aga(X, Y, Z))
app1_in_aga(.(X0, X), Y, .(X0, Z)) → U1_aga(X0, X, Y, Z, app1_in_aga(X, Y, Z))
app1_in_aga([], Y, Y) → app1_out_aga([], Y, Y)
U1_aga(X0, X, Y, Z, app1_out_aga(X, Y, Z)) → app1_out_aga(.(X0, X), Y, .(X0, Z))
U1_agg(X0, X, Y, Z, app1_out_aga(X, Y, Z)) → app1_out_agg(.(X0, X), Y, .(X0, Z))
app1_in_agg([], Y, Y) → app1_out_agg([], Y, Y)
U3_ga(X, X0, Y, app1_out_agg(X1, .(X0, X2), X)) → U4_ga(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
app2_in_gaa(.(X0, X), Y, .(X0, Z)) → U2_gaa(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
app2_in_aaa(.(X0, X), Y, .(X0, Z)) → U2_aaa(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
app2_in_aaa([], Y, Y) → app2_out_aaa([], Y, Y)
U2_aaa(X0, X, Y, Z, app2_out_aaa(X, Y, Z)) → app2_out_aaa(.(X0, X), Y, .(X0, Z))
U2_gaa(X0, X, Y, Z, app2_out_aaa(X, Y, Z)) → app2_out_gaa(.(X0, X), Y, .(X0, Z))
app2_in_gaa([], Y, Y) → app2_out_gaa([], Y, Y)
U4_ga(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → U5_ga(X, X0, Y, perm_in_aa(Z, Y))
perm_in_aa(X, .(X0, Y)) → U3_aa(X, X0, Y, app1_in_aga(X1, .(X0, X2), X))
U3_aa(X, X0, Y, app1_out_aga(X1, .(X0, X2), X)) → U4_aa(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
U4_aa(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → U5_aa(X, X0, Y, perm_in_aa(Z, Y))
perm_in_aa([], []) → perm_out_aa([], [])
U5_aa(X, X0, Y, perm_out_aa(Z, Y)) → perm_out_aa(X, .(X0, Y))
U5_ga(X, X0, Y, perm_out_aa(Z, Y)) → perm_out_ga(X, .(X0, Y))
perm_in_ga([], []) → perm_out_ga([], [])
PERM_IN_GA(X, .(X0, Y)) → U3_GA(X, X0, Y, app1_in_agg(X1, .(X0, X2), X))
PERM_IN_GA(X, .(X0, Y)) → APP1_IN_AGG(X1, .(X0, X2), X)
APP1_IN_AGG(.(X0, X), Y, .(X0, Z)) → U1_AGG(X0, X, Y, Z, app1_in_aga(X, Y, Z))
APP1_IN_AGG(.(X0, X), Y, .(X0, Z)) → APP1_IN_AGA(X, Y, Z)
APP1_IN_AGA(.(X0, X), Y, .(X0, Z)) → U1_AGA(X0, X, Y, Z, app1_in_aga(X, Y, Z))
APP1_IN_AGA(.(X0, X), Y, .(X0, Z)) → APP1_IN_AGA(X, Y, Z)
U3_GA(X, X0, Y, app1_out_agg(X1, .(X0, X2), X)) → U4_GA(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
U3_GA(X, X0, Y, app1_out_agg(X1, .(X0, X2), X)) → APP2_IN_GAA(X1, X2, Z)
APP2_IN_GAA(.(X0, X), Y, .(X0, Z)) → U2_GAA(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
APP2_IN_GAA(.(X0, X), Y, .(X0, Z)) → APP2_IN_AAA(X, Y, Z)
APP2_IN_AAA(.(X0, X), Y, .(X0, Z)) → U2_AAA(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
APP2_IN_AAA(.(X0, X), Y, .(X0, Z)) → APP2_IN_AAA(X, Y, Z)
U4_GA(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → U5_GA(X, X0, Y, perm_in_aa(Z, Y))
U4_GA(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → PERM_IN_AA(Z, Y)
PERM_IN_AA(X, .(X0, Y)) → U3_AA(X, X0, Y, app1_in_aga(X1, .(X0, X2), X))
PERM_IN_AA(X, .(X0, Y)) → APP1_IN_AGA(X1, .(X0, X2), X)
U3_AA(X, X0, Y, app1_out_aga(X1, .(X0, X2), X)) → U4_AA(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
U3_AA(X, X0, Y, app1_out_aga(X1, .(X0, X2), X)) → APP2_IN_GAA(X1, X2, Z)
U4_AA(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → U5_AA(X, X0, Y, perm_in_aa(Z, Y))
U4_AA(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → PERM_IN_AA(Z, Y)
perm_in_ga(X, .(X0, Y)) → U3_ga(X, X0, Y, app1_in_agg(X1, .(X0, X2), X))
app1_in_agg(.(X0, X), Y, .(X0, Z)) → U1_agg(X0, X, Y, Z, app1_in_aga(X, Y, Z))
app1_in_aga(.(X0, X), Y, .(X0, Z)) → U1_aga(X0, X, Y, Z, app1_in_aga(X, Y, Z))
app1_in_aga([], Y, Y) → app1_out_aga([], Y, Y)
U1_aga(X0, X, Y, Z, app1_out_aga(X, Y, Z)) → app1_out_aga(.(X0, X), Y, .(X0, Z))
U1_agg(X0, X, Y, Z, app1_out_aga(X, Y, Z)) → app1_out_agg(.(X0, X), Y, .(X0, Z))
app1_in_agg([], Y, Y) → app1_out_agg([], Y, Y)
U3_ga(X, X0, Y, app1_out_agg(X1, .(X0, X2), X)) → U4_ga(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
app2_in_gaa(.(X0, X), Y, .(X0, Z)) → U2_gaa(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
app2_in_aaa(.(X0, X), Y, .(X0, Z)) → U2_aaa(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
app2_in_aaa([], Y, Y) → app2_out_aaa([], Y, Y)
U2_aaa(X0, X, Y, Z, app2_out_aaa(X, Y, Z)) → app2_out_aaa(.(X0, X), Y, .(X0, Z))
U2_gaa(X0, X, Y, Z, app2_out_aaa(X, Y, Z)) → app2_out_gaa(.(X0, X), Y, .(X0, Z))
app2_in_gaa([], Y, Y) → app2_out_gaa([], Y, Y)
U4_ga(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → U5_ga(X, X0, Y, perm_in_aa(Z, Y))
perm_in_aa(X, .(X0, Y)) → U3_aa(X, X0, Y, app1_in_aga(X1, .(X0, X2), X))
U3_aa(X, X0, Y, app1_out_aga(X1, .(X0, X2), X)) → U4_aa(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
U4_aa(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → U5_aa(X, X0, Y, perm_in_aa(Z, Y))
perm_in_aa([], []) → perm_out_aa([], [])
U5_aa(X, X0, Y, perm_out_aa(Z, Y)) → perm_out_aa(X, .(X0, Y))
U5_ga(X, X0, Y, perm_out_aa(Z, Y)) → perm_out_ga(X, .(X0, Y))
perm_in_ga([], []) → perm_out_ga([], [])
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ PrologToPiTRSProof
PERM_IN_GA(X, .(X0, Y)) → U3_GA(X, X0, Y, app1_in_agg(X1, .(X0, X2), X))
PERM_IN_GA(X, .(X0, Y)) → APP1_IN_AGG(X1, .(X0, X2), X)
APP1_IN_AGG(.(X0, X), Y, .(X0, Z)) → U1_AGG(X0, X, Y, Z, app1_in_aga(X, Y, Z))
APP1_IN_AGG(.(X0, X), Y, .(X0, Z)) → APP1_IN_AGA(X, Y, Z)
APP1_IN_AGA(.(X0, X), Y, .(X0, Z)) → U1_AGA(X0, X, Y, Z, app1_in_aga(X, Y, Z))
APP1_IN_AGA(.(X0, X), Y, .(X0, Z)) → APP1_IN_AGA(X, Y, Z)
U3_GA(X, X0, Y, app1_out_agg(X1, .(X0, X2), X)) → U4_GA(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
U3_GA(X, X0, Y, app1_out_agg(X1, .(X0, X2), X)) → APP2_IN_GAA(X1, X2, Z)
APP2_IN_GAA(.(X0, X), Y, .(X0, Z)) → U2_GAA(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
APP2_IN_GAA(.(X0, X), Y, .(X0, Z)) → APP2_IN_AAA(X, Y, Z)
APP2_IN_AAA(.(X0, X), Y, .(X0, Z)) → U2_AAA(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
APP2_IN_AAA(.(X0, X), Y, .(X0, Z)) → APP2_IN_AAA(X, Y, Z)
U4_GA(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → U5_GA(X, X0, Y, perm_in_aa(Z, Y))
U4_GA(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → PERM_IN_AA(Z, Y)
PERM_IN_AA(X, .(X0, Y)) → U3_AA(X, X0, Y, app1_in_aga(X1, .(X0, X2), X))
PERM_IN_AA(X, .(X0, Y)) → APP1_IN_AGA(X1, .(X0, X2), X)
U3_AA(X, X0, Y, app1_out_aga(X1, .(X0, X2), X)) → U4_AA(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
U3_AA(X, X0, Y, app1_out_aga(X1, .(X0, X2), X)) → APP2_IN_GAA(X1, X2, Z)
U4_AA(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → U5_AA(X, X0, Y, perm_in_aa(Z, Y))
U4_AA(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → PERM_IN_AA(Z, Y)
perm_in_ga(X, .(X0, Y)) → U3_ga(X, X0, Y, app1_in_agg(X1, .(X0, X2), X))
app1_in_agg(.(X0, X), Y, .(X0, Z)) → U1_agg(X0, X, Y, Z, app1_in_aga(X, Y, Z))
app1_in_aga(.(X0, X), Y, .(X0, Z)) → U1_aga(X0, X, Y, Z, app1_in_aga(X, Y, Z))
app1_in_aga([], Y, Y) → app1_out_aga([], Y, Y)
U1_aga(X0, X, Y, Z, app1_out_aga(X, Y, Z)) → app1_out_aga(.(X0, X), Y, .(X0, Z))
U1_agg(X0, X, Y, Z, app1_out_aga(X, Y, Z)) → app1_out_agg(.(X0, X), Y, .(X0, Z))
app1_in_agg([], Y, Y) → app1_out_agg([], Y, Y)
U3_ga(X, X0, Y, app1_out_agg(X1, .(X0, X2), X)) → U4_ga(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
app2_in_gaa(.(X0, X), Y, .(X0, Z)) → U2_gaa(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
app2_in_aaa(.(X0, X), Y, .(X0, Z)) → U2_aaa(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
app2_in_aaa([], Y, Y) → app2_out_aaa([], Y, Y)
U2_aaa(X0, X, Y, Z, app2_out_aaa(X, Y, Z)) → app2_out_aaa(.(X0, X), Y, .(X0, Z))
U2_gaa(X0, X, Y, Z, app2_out_aaa(X, Y, Z)) → app2_out_gaa(.(X0, X), Y, .(X0, Z))
app2_in_gaa([], Y, Y) → app2_out_gaa([], Y, Y)
U4_ga(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → U5_ga(X, X0, Y, perm_in_aa(Z, Y))
perm_in_aa(X, .(X0, Y)) → U3_aa(X, X0, Y, app1_in_aga(X1, .(X0, X2), X))
U3_aa(X, X0, Y, app1_out_aga(X1, .(X0, X2), X)) → U4_aa(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
U4_aa(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → U5_aa(X, X0, Y, perm_in_aa(Z, Y))
perm_in_aa([], []) → perm_out_aa([], [])
U5_aa(X, X0, Y, perm_out_aa(Z, Y)) → perm_out_aa(X, .(X0, Y))
U5_ga(X, X0, Y, perm_out_aa(Z, Y)) → perm_out_ga(X, .(X0, Y))
perm_in_ga([], []) → perm_out_ga([], [])
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
APP2_IN_AAA(.(X0, X), Y, .(X0, Z)) → APP2_IN_AAA(X, Y, Z)
perm_in_ga(X, .(X0, Y)) → U3_ga(X, X0, Y, app1_in_agg(X1, .(X0, X2), X))
app1_in_agg(.(X0, X), Y, .(X0, Z)) → U1_agg(X0, X, Y, Z, app1_in_aga(X, Y, Z))
app1_in_aga(.(X0, X), Y, .(X0, Z)) → U1_aga(X0, X, Y, Z, app1_in_aga(X, Y, Z))
app1_in_aga([], Y, Y) → app1_out_aga([], Y, Y)
U1_aga(X0, X, Y, Z, app1_out_aga(X, Y, Z)) → app1_out_aga(.(X0, X), Y, .(X0, Z))
U1_agg(X0, X, Y, Z, app1_out_aga(X, Y, Z)) → app1_out_agg(.(X0, X), Y, .(X0, Z))
app1_in_agg([], Y, Y) → app1_out_agg([], Y, Y)
U3_ga(X, X0, Y, app1_out_agg(X1, .(X0, X2), X)) → U4_ga(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
app2_in_gaa(.(X0, X), Y, .(X0, Z)) → U2_gaa(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
app2_in_aaa(.(X0, X), Y, .(X0, Z)) → U2_aaa(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
app2_in_aaa([], Y, Y) → app2_out_aaa([], Y, Y)
U2_aaa(X0, X, Y, Z, app2_out_aaa(X, Y, Z)) → app2_out_aaa(.(X0, X), Y, .(X0, Z))
U2_gaa(X0, X, Y, Z, app2_out_aaa(X, Y, Z)) → app2_out_gaa(.(X0, X), Y, .(X0, Z))
app2_in_gaa([], Y, Y) → app2_out_gaa([], Y, Y)
U4_ga(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → U5_ga(X, X0, Y, perm_in_aa(Z, Y))
perm_in_aa(X, .(X0, Y)) → U3_aa(X, X0, Y, app1_in_aga(X1, .(X0, X2), X))
U3_aa(X, X0, Y, app1_out_aga(X1, .(X0, X2), X)) → U4_aa(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
U4_aa(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → U5_aa(X, X0, Y, perm_in_aa(Z, Y))
perm_in_aa([], []) → perm_out_aa([], [])
U5_aa(X, X0, Y, perm_out_aa(Z, Y)) → perm_out_aa(X, .(X0, Y))
U5_ga(X, X0, Y, perm_out_aa(Z, Y)) → perm_out_ga(X, .(X0, Y))
perm_in_ga([], []) → perm_out_ga([], [])
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
APP2_IN_AAA(.(X0, X), Y, .(X0, Z)) → APP2_IN_AAA(X, Y, Z)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PiDP
↳ PiDP
↳ PrologToPiTRSProof
APP2_IN_AAA → APP2_IN_AAA
APP2_IN_AAA → APP2_IN_AAA
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PrologToPiTRSProof
APP1_IN_AGA(.(X0, X), Y, .(X0, Z)) → APP1_IN_AGA(X, Y, Z)
perm_in_ga(X, .(X0, Y)) → U3_ga(X, X0, Y, app1_in_agg(X1, .(X0, X2), X))
app1_in_agg(.(X0, X), Y, .(X0, Z)) → U1_agg(X0, X, Y, Z, app1_in_aga(X, Y, Z))
app1_in_aga(.(X0, X), Y, .(X0, Z)) → U1_aga(X0, X, Y, Z, app1_in_aga(X, Y, Z))
app1_in_aga([], Y, Y) → app1_out_aga([], Y, Y)
U1_aga(X0, X, Y, Z, app1_out_aga(X, Y, Z)) → app1_out_aga(.(X0, X), Y, .(X0, Z))
U1_agg(X0, X, Y, Z, app1_out_aga(X, Y, Z)) → app1_out_agg(.(X0, X), Y, .(X0, Z))
app1_in_agg([], Y, Y) → app1_out_agg([], Y, Y)
U3_ga(X, X0, Y, app1_out_agg(X1, .(X0, X2), X)) → U4_ga(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
app2_in_gaa(.(X0, X), Y, .(X0, Z)) → U2_gaa(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
app2_in_aaa(.(X0, X), Y, .(X0, Z)) → U2_aaa(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
app2_in_aaa([], Y, Y) → app2_out_aaa([], Y, Y)
U2_aaa(X0, X, Y, Z, app2_out_aaa(X, Y, Z)) → app2_out_aaa(.(X0, X), Y, .(X0, Z))
U2_gaa(X0, X, Y, Z, app2_out_aaa(X, Y, Z)) → app2_out_gaa(.(X0, X), Y, .(X0, Z))
app2_in_gaa([], Y, Y) → app2_out_gaa([], Y, Y)
U4_ga(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → U5_ga(X, X0, Y, perm_in_aa(Z, Y))
perm_in_aa(X, .(X0, Y)) → U3_aa(X, X0, Y, app1_in_aga(X1, .(X0, X2), X))
U3_aa(X, X0, Y, app1_out_aga(X1, .(X0, X2), X)) → U4_aa(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
U4_aa(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → U5_aa(X, X0, Y, perm_in_aa(Z, Y))
perm_in_aa([], []) → perm_out_aa([], [])
U5_aa(X, X0, Y, perm_out_aa(Z, Y)) → perm_out_aa(X, .(X0, Y))
U5_ga(X, X0, Y, perm_out_aa(Z, Y)) → perm_out_ga(X, .(X0, Y))
perm_in_ga([], []) → perm_out_ga([], [])
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PrologToPiTRSProof
APP1_IN_AGA(.(X0, X), Y, .(X0, Z)) → APP1_IN_AGA(X, Y, Z)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PiDP
↳ PrologToPiTRSProof
APP1_IN_AGA(Y) → APP1_IN_AGA(Y)
APP1_IN_AGA(Y) → APP1_IN_AGA(Y)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PrologToPiTRSProof
U4_AA(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → PERM_IN_AA(Z, Y)
PERM_IN_AA(X, .(X0, Y)) → U3_AA(X, X0, Y, app1_in_aga(X1, .(X0, X2), X))
U3_AA(X, X0, Y, app1_out_aga(X1, .(X0, X2), X)) → U4_AA(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
perm_in_ga(X, .(X0, Y)) → U3_ga(X, X0, Y, app1_in_agg(X1, .(X0, X2), X))
app1_in_agg(.(X0, X), Y, .(X0, Z)) → U1_agg(X0, X, Y, Z, app1_in_aga(X, Y, Z))
app1_in_aga(.(X0, X), Y, .(X0, Z)) → U1_aga(X0, X, Y, Z, app1_in_aga(X, Y, Z))
app1_in_aga([], Y, Y) → app1_out_aga([], Y, Y)
U1_aga(X0, X, Y, Z, app1_out_aga(X, Y, Z)) → app1_out_aga(.(X0, X), Y, .(X0, Z))
U1_agg(X0, X, Y, Z, app1_out_aga(X, Y, Z)) → app1_out_agg(.(X0, X), Y, .(X0, Z))
app1_in_agg([], Y, Y) → app1_out_agg([], Y, Y)
U3_ga(X, X0, Y, app1_out_agg(X1, .(X0, X2), X)) → U4_ga(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
app2_in_gaa(.(X0, X), Y, .(X0, Z)) → U2_gaa(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
app2_in_aaa(.(X0, X), Y, .(X0, Z)) → U2_aaa(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
app2_in_aaa([], Y, Y) → app2_out_aaa([], Y, Y)
U2_aaa(X0, X, Y, Z, app2_out_aaa(X, Y, Z)) → app2_out_aaa(.(X0, X), Y, .(X0, Z))
U2_gaa(X0, X, Y, Z, app2_out_aaa(X, Y, Z)) → app2_out_gaa(.(X0, X), Y, .(X0, Z))
app2_in_gaa([], Y, Y) → app2_out_gaa([], Y, Y)
U4_ga(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → U5_ga(X, X0, Y, perm_in_aa(Z, Y))
perm_in_aa(X, .(X0, Y)) → U3_aa(X, X0, Y, app1_in_aga(X1, .(X0, X2), X))
U3_aa(X, X0, Y, app1_out_aga(X1, .(X0, X2), X)) → U4_aa(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
U4_aa(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → U5_aa(X, X0, Y, perm_in_aa(Z, Y))
perm_in_aa([], []) → perm_out_aa([], [])
U5_aa(X, X0, Y, perm_out_aa(Z, Y)) → perm_out_aa(X, .(X0, Y))
U5_ga(X, X0, Y, perm_out_aa(Z, Y)) → perm_out_ga(X, .(X0, Y))
perm_in_ga([], []) → perm_out_ga([], [])
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PrologToPiTRSProof
U4_AA(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → PERM_IN_AA(Z, Y)
PERM_IN_AA(X, .(X0, Y)) → U3_AA(X, X0, Y, app1_in_aga(X1, .(X0, X2), X))
U3_AA(X, X0, Y, app1_out_aga(X1, .(X0, X2), X)) → U4_AA(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
app1_in_aga(.(X0, X), Y, .(X0, Z)) → U1_aga(X0, X, Y, Z, app1_in_aga(X, Y, Z))
app1_in_aga([], Y, Y) → app1_out_aga([], Y, Y)
app2_in_gaa(.(X0, X), Y, .(X0, Z)) → U2_gaa(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
app2_in_gaa([], Y, Y) → app2_out_gaa([], Y, Y)
U1_aga(X0, X, Y, Z, app1_out_aga(X, Y, Z)) → app1_out_aga(.(X0, X), Y, .(X0, Z))
U2_gaa(X0, X, Y, Z, app2_out_aaa(X, Y, Z)) → app2_out_gaa(.(X0, X), Y, .(X0, Z))
app2_in_aaa(.(X0, X), Y, .(X0, Z)) → U2_aaa(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
app2_in_aaa([], Y, Y) → app2_out_aaa([], Y, Y)
U2_aaa(X0, X, Y, Z, app2_out_aaa(X, Y, Z)) → app2_out_aaa(.(X0, X), Y, .(X0, Z))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ PrologToPiTRSProof
U3_AA(app1_out_aga(X1, X)) → U4_AA(X, app2_in_gaa(X1))
PERM_IN_AA → U3_AA(app1_in_aga(.))
U4_AA(X, app2_out_gaa) → PERM_IN_AA
app1_in_aga(Y) → U1_aga(app1_in_aga(Y))
app1_in_aga(Y) → app1_out_aga([], Y)
app2_in_gaa(.) → U2_gaa(app2_in_aaa)
app2_in_gaa([]) → app2_out_gaa
U1_aga(app1_out_aga(X, Z)) → app1_out_aga(., .)
U2_gaa(app2_out_aaa(X)) → app2_out_gaa
app2_in_aaa → U2_aaa(app2_in_aaa)
app2_in_aaa → app2_out_aaa([])
U2_aaa(app2_out_aaa(X)) → app2_out_aaa(.)
app1_in_aga(x0)
app2_in_gaa(x0)
U1_aga(x0)
U2_gaa(x0)
app2_in_aaa
U2_aaa(x0)
PERM_IN_AA → U3_AA(app1_out_aga([], .))
PERM_IN_AA → U3_AA(U1_aga(app1_in_aga(.)))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ PrologToPiTRSProof
U3_AA(app1_out_aga(X1, X)) → U4_AA(X, app2_in_gaa(X1))
PERM_IN_AA → U3_AA(app1_out_aga([], .))
PERM_IN_AA → U3_AA(U1_aga(app1_in_aga(.)))
U4_AA(X, app2_out_gaa) → PERM_IN_AA
app1_in_aga(Y) → U1_aga(app1_in_aga(Y))
app1_in_aga(Y) → app1_out_aga([], Y)
app2_in_gaa(.) → U2_gaa(app2_in_aaa)
app2_in_gaa([]) → app2_out_gaa
U1_aga(app1_out_aga(X, Z)) → app1_out_aga(., .)
U2_gaa(app2_out_aaa(X)) → app2_out_gaa
app2_in_aaa → U2_aaa(app2_in_aaa)
app2_in_aaa → app2_out_aaa([])
U2_aaa(app2_out_aaa(X)) → app2_out_aaa(.)
app1_in_aga(x0)
app2_in_gaa(x0)
U1_aga(x0)
U2_gaa(x0)
app2_in_aaa
U2_aaa(x0)
U3_AA(app1_out_aga([], y1)) → U4_AA(y1, app2_out_gaa)
U3_AA(app1_out_aga(., y1)) → U4_AA(y1, U2_gaa(app2_in_aaa))
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ PrologToPiTRSProof
U3_AA(app1_out_aga([], y1)) → U4_AA(y1, app2_out_gaa)
PERM_IN_AA → U3_AA(app1_out_aga([], .))
PERM_IN_AA → U3_AA(U1_aga(app1_in_aga(.)))
U3_AA(app1_out_aga(., y1)) → U4_AA(y1, U2_gaa(app2_in_aaa))
U4_AA(X, app2_out_gaa) → PERM_IN_AA
app1_in_aga(Y) → U1_aga(app1_in_aga(Y))
app1_in_aga(Y) → app1_out_aga([], Y)
app2_in_gaa(.) → U2_gaa(app2_in_aaa)
app2_in_gaa([]) → app2_out_gaa
U1_aga(app1_out_aga(X, Z)) → app1_out_aga(., .)
U2_gaa(app2_out_aaa(X)) → app2_out_gaa
app2_in_aaa → U2_aaa(app2_in_aaa)
app2_in_aaa → app2_out_aaa([])
U2_aaa(app2_out_aaa(X)) → app2_out_aaa(.)
app1_in_aga(x0)
app2_in_gaa(x0)
U1_aga(x0)
U2_gaa(x0)
app2_in_aaa
U2_aaa(x0)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ PrologToPiTRSProof
U3_AA(app1_out_aga([], y1)) → U4_AA(y1, app2_out_gaa)
PERM_IN_AA → U3_AA(app1_out_aga([], .))
PERM_IN_AA → U3_AA(U1_aga(app1_in_aga(.)))
U3_AA(app1_out_aga(., y1)) → U4_AA(y1, U2_gaa(app2_in_aaa))
U4_AA(X, app2_out_gaa) → PERM_IN_AA
app1_in_aga(Y) → U1_aga(app1_in_aga(Y))
app1_in_aga(Y) → app1_out_aga([], Y)
U1_aga(app1_out_aga(X, Z)) → app1_out_aga(., .)
app2_in_aaa → U2_aaa(app2_in_aaa)
app2_in_aaa → app2_out_aaa([])
U2_gaa(app2_out_aaa(X)) → app2_out_gaa
U2_aaa(app2_out_aaa(X)) → app2_out_aaa(.)
app1_in_aga(x0)
app2_in_gaa(x0)
U1_aga(x0)
U2_gaa(x0)
app2_in_aaa
U2_aaa(x0)
app2_in_gaa(x0)
↳ Prolog
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ NonTerminationProof
↳ PrologToPiTRSProof
PERM_IN_AA → U3_AA(app1_out_aga([], .))
U3_AA(app1_out_aga([], y1)) → U4_AA(y1, app2_out_gaa)
PERM_IN_AA → U3_AA(U1_aga(app1_in_aga(.)))
U4_AA(X, app2_out_gaa) → PERM_IN_AA
U3_AA(app1_out_aga(., y1)) → U4_AA(y1, U2_gaa(app2_in_aaa))
app1_in_aga(Y) → U1_aga(app1_in_aga(Y))
app1_in_aga(Y) → app1_out_aga([], Y)
U1_aga(app1_out_aga(X, Z)) → app1_out_aga(., .)
app2_in_aaa → U2_aaa(app2_in_aaa)
app2_in_aaa → app2_out_aaa([])
U2_gaa(app2_out_aaa(X)) → app2_out_gaa
U2_aaa(app2_out_aaa(X)) → app2_out_aaa(.)
app1_in_aga(x0)
U1_aga(x0)
U2_gaa(x0)
app2_in_aaa
U2_aaa(x0)
PERM_IN_AA → U3_AA(app1_out_aga([], .))
U3_AA(app1_out_aga([], y1)) → U4_AA(y1, app2_out_gaa)
PERM_IN_AA → U3_AA(U1_aga(app1_in_aga(.)))
U4_AA(X, app2_out_gaa) → PERM_IN_AA
U3_AA(app1_out_aga(., y1)) → U4_AA(y1, U2_gaa(app2_in_aaa))
app1_in_aga(Y) → U1_aga(app1_in_aga(Y))
app1_in_aga(Y) → app1_out_aga([], Y)
U1_aga(app1_out_aga(X, Z)) → app1_out_aga(., .)
app2_in_aaa → U2_aaa(app2_in_aaa)
app2_in_aaa → app2_out_aaa([])
U2_gaa(app2_out_aaa(X)) → app2_out_gaa
U2_aaa(app2_out_aaa(X)) → app2_out_aaa(.)
perm_in_ga(X, .(X0, Y)) → U3_ga(X, X0, Y, app1_in_agg(X1, .(X0, X2), X))
app1_in_agg(.(X0, X), Y, .(X0, Z)) → U1_agg(X0, X, Y, Z, app1_in_aga(X, Y, Z))
app1_in_aga(.(X0, X), Y, .(X0, Z)) → U1_aga(X0, X, Y, Z, app1_in_aga(X, Y, Z))
app1_in_aga([], Y, Y) → app1_out_aga([], Y, Y)
U1_aga(X0, X, Y, Z, app1_out_aga(X, Y, Z)) → app1_out_aga(.(X0, X), Y, .(X0, Z))
U1_agg(X0, X, Y, Z, app1_out_aga(X, Y, Z)) → app1_out_agg(.(X0, X), Y, .(X0, Z))
app1_in_agg([], Y, Y) → app1_out_agg([], Y, Y)
U3_ga(X, X0, Y, app1_out_agg(X1, .(X0, X2), X)) → U4_ga(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
app2_in_gaa(.(X0, X), Y, .(X0, Z)) → U2_gaa(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
app2_in_aaa(.(X0, X), Y, .(X0, Z)) → U2_aaa(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
app2_in_aaa([], Y, Y) → app2_out_aaa([], Y, Y)
U2_aaa(X0, X, Y, Z, app2_out_aaa(X, Y, Z)) → app2_out_aaa(.(X0, X), Y, .(X0, Z))
U2_gaa(X0, X, Y, Z, app2_out_aaa(X, Y, Z)) → app2_out_gaa(.(X0, X), Y, .(X0, Z))
app2_in_gaa([], Y, Y) → app2_out_gaa([], Y, Y)
U4_ga(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → U5_ga(X, X0, Y, perm_in_aa(Z, Y))
perm_in_aa(X, .(X0, Y)) → U3_aa(X, X0, Y, app1_in_aga(X1, .(X0, X2), X))
U3_aa(X, X0, Y, app1_out_aga(X1, .(X0, X2), X)) → U4_aa(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
U4_aa(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → U5_aa(X, X0, Y, perm_in_aa(Z, Y))
perm_in_aa([], []) → perm_out_aa([], [])
U5_aa(X, X0, Y, perm_out_aa(Z, Y)) → perm_out_aa(X, .(X0, Y))
U5_ga(X, X0, Y, perm_out_aa(Z, Y)) → perm_out_ga(X, .(X0, Y))
perm_in_ga([], []) → perm_out_ga([], [])
Infinitary Constructor Rewriting Termination of PiTRS implies Termination of Prolog
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
perm_in_ga(X, .(X0, Y)) → U3_ga(X, X0, Y, app1_in_agg(X1, .(X0, X2), X))
app1_in_agg(.(X0, X), Y, .(X0, Z)) → U1_agg(X0, X, Y, Z, app1_in_aga(X, Y, Z))
app1_in_aga(.(X0, X), Y, .(X0, Z)) → U1_aga(X0, X, Y, Z, app1_in_aga(X, Y, Z))
app1_in_aga([], Y, Y) → app1_out_aga([], Y, Y)
U1_aga(X0, X, Y, Z, app1_out_aga(X, Y, Z)) → app1_out_aga(.(X0, X), Y, .(X0, Z))
U1_agg(X0, X, Y, Z, app1_out_aga(X, Y, Z)) → app1_out_agg(.(X0, X), Y, .(X0, Z))
app1_in_agg([], Y, Y) → app1_out_agg([], Y, Y)
U3_ga(X, X0, Y, app1_out_agg(X1, .(X0, X2), X)) → U4_ga(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
app2_in_gaa(.(X0, X), Y, .(X0, Z)) → U2_gaa(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
app2_in_aaa(.(X0, X), Y, .(X0, Z)) → U2_aaa(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
app2_in_aaa([], Y, Y) → app2_out_aaa([], Y, Y)
U2_aaa(X0, X, Y, Z, app2_out_aaa(X, Y, Z)) → app2_out_aaa(.(X0, X), Y, .(X0, Z))
U2_gaa(X0, X, Y, Z, app2_out_aaa(X, Y, Z)) → app2_out_gaa(.(X0, X), Y, .(X0, Z))
app2_in_gaa([], Y, Y) → app2_out_gaa([], Y, Y)
U4_ga(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → U5_ga(X, X0, Y, perm_in_aa(Z, Y))
perm_in_aa(X, .(X0, Y)) → U3_aa(X, X0, Y, app1_in_aga(X1, .(X0, X2), X))
U3_aa(X, X0, Y, app1_out_aga(X1, .(X0, X2), X)) → U4_aa(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
U4_aa(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → U5_aa(X, X0, Y, perm_in_aa(Z, Y))
perm_in_aa([], []) → perm_out_aa([], [])
U5_aa(X, X0, Y, perm_out_aa(Z, Y)) → perm_out_aa(X, .(X0, Y))
U5_ga(X, X0, Y, perm_out_aa(Z, Y)) → perm_out_ga(X, .(X0, Y))
perm_in_ga([], []) → perm_out_ga([], [])
PERM_IN_GA(X, .(X0, Y)) → U3_GA(X, X0, Y, app1_in_agg(X1, .(X0, X2), X))
PERM_IN_GA(X, .(X0, Y)) → APP1_IN_AGG(X1, .(X0, X2), X)
APP1_IN_AGG(.(X0, X), Y, .(X0, Z)) → U1_AGG(X0, X, Y, Z, app1_in_aga(X, Y, Z))
APP1_IN_AGG(.(X0, X), Y, .(X0, Z)) → APP1_IN_AGA(X, Y, Z)
APP1_IN_AGA(.(X0, X), Y, .(X0, Z)) → U1_AGA(X0, X, Y, Z, app1_in_aga(X, Y, Z))
APP1_IN_AGA(.(X0, X), Y, .(X0, Z)) → APP1_IN_AGA(X, Y, Z)
U3_GA(X, X0, Y, app1_out_agg(X1, .(X0, X2), X)) → U4_GA(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
U3_GA(X, X0, Y, app1_out_agg(X1, .(X0, X2), X)) → APP2_IN_GAA(X1, X2, Z)
APP2_IN_GAA(.(X0, X), Y, .(X0, Z)) → U2_GAA(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
APP2_IN_GAA(.(X0, X), Y, .(X0, Z)) → APP2_IN_AAA(X, Y, Z)
APP2_IN_AAA(.(X0, X), Y, .(X0, Z)) → U2_AAA(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
APP2_IN_AAA(.(X0, X), Y, .(X0, Z)) → APP2_IN_AAA(X, Y, Z)
U4_GA(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → U5_GA(X, X0, Y, perm_in_aa(Z, Y))
U4_GA(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → PERM_IN_AA(Z, Y)
PERM_IN_AA(X, .(X0, Y)) → U3_AA(X, X0, Y, app1_in_aga(X1, .(X0, X2), X))
PERM_IN_AA(X, .(X0, Y)) → APP1_IN_AGA(X1, .(X0, X2), X)
U3_AA(X, X0, Y, app1_out_aga(X1, .(X0, X2), X)) → U4_AA(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
U3_AA(X, X0, Y, app1_out_aga(X1, .(X0, X2), X)) → APP2_IN_GAA(X1, X2, Z)
U4_AA(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → U5_AA(X, X0, Y, perm_in_aa(Z, Y))
U4_AA(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → PERM_IN_AA(Z, Y)
perm_in_ga(X, .(X0, Y)) → U3_ga(X, X0, Y, app1_in_agg(X1, .(X0, X2), X))
app1_in_agg(.(X0, X), Y, .(X0, Z)) → U1_agg(X0, X, Y, Z, app1_in_aga(X, Y, Z))
app1_in_aga(.(X0, X), Y, .(X0, Z)) → U1_aga(X0, X, Y, Z, app1_in_aga(X, Y, Z))
app1_in_aga([], Y, Y) → app1_out_aga([], Y, Y)
U1_aga(X0, X, Y, Z, app1_out_aga(X, Y, Z)) → app1_out_aga(.(X0, X), Y, .(X0, Z))
U1_agg(X0, X, Y, Z, app1_out_aga(X, Y, Z)) → app1_out_agg(.(X0, X), Y, .(X0, Z))
app1_in_agg([], Y, Y) → app1_out_agg([], Y, Y)
U3_ga(X, X0, Y, app1_out_agg(X1, .(X0, X2), X)) → U4_ga(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
app2_in_gaa(.(X0, X), Y, .(X0, Z)) → U2_gaa(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
app2_in_aaa(.(X0, X), Y, .(X0, Z)) → U2_aaa(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
app2_in_aaa([], Y, Y) → app2_out_aaa([], Y, Y)
U2_aaa(X0, X, Y, Z, app2_out_aaa(X, Y, Z)) → app2_out_aaa(.(X0, X), Y, .(X0, Z))
U2_gaa(X0, X, Y, Z, app2_out_aaa(X, Y, Z)) → app2_out_gaa(.(X0, X), Y, .(X0, Z))
app2_in_gaa([], Y, Y) → app2_out_gaa([], Y, Y)
U4_ga(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → U5_ga(X, X0, Y, perm_in_aa(Z, Y))
perm_in_aa(X, .(X0, Y)) → U3_aa(X, X0, Y, app1_in_aga(X1, .(X0, X2), X))
U3_aa(X, X0, Y, app1_out_aga(X1, .(X0, X2), X)) → U4_aa(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
U4_aa(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → U5_aa(X, X0, Y, perm_in_aa(Z, Y))
perm_in_aa([], []) → perm_out_aa([], [])
U5_aa(X, X0, Y, perm_out_aa(Z, Y)) → perm_out_aa(X, .(X0, Y))
U5_ga(X, X0, Y, perm_out_aa(Z, Y)) → perm_out_ga(X, .(X0, Y))
perm_in_ga([], []) → perm_out_ga([], [])
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
PERM_IN_GA(X, .(X0, Y)) → U3_GA(X, X0, Y, app1_in_agg(X1, .(X0, X2), X))
PERM_IN_GA(X, .(X0, Y)) → APP1_IN_AGG(X1, .(X0, X2), X)
APP1_IN_AGG(.(X0, X), Y, .(X0, Z)) → U1_AGG(X0, X, Y, Z, app1_in_aga(X, Y, Z))
APP1_IN_AGG(.(X0, X), Y, .(X0, Z)) → APP1_IN_AGA(X, Y, Z)
APP1_IN_AGA(.(X0, X), Y, .(X0, Z)) → U1_AGA(X0, X, Y, Z, app1_in_aga(X, Y, Z))
APP1_IN_AGA(.(X0, X), Y, .(X0, Z)) → APP1_IN_AGA(X, Y, Z)
U3_GA(X, X0, Y, app1_out_agg(X1, .(X0, X2), X)) → U4_GA(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
U3_GA(X, X0, Y, app1_out_agg(X1, .(X0, X2), X)) → APP2_IN_GAA(X1, X2, Z)
APP2_IN_GAA(.(X0, X), Y, .(X0, Z)) → U2_GAA(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
APP2_IN_GAA(.(X0, X), Y, .(X0, Z)) → APP2_IN_AAA(X, Y, Z)
APP2_IN_AAA(.(X0, X), Y, .(X0, Z)) → U2_AAA(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
APP2_IN_AAA(.(X0, X), Y, .(X0, Z)) → APP2_IN_AAA(X, Y, Z)
U4_GA(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → U5_GA(X, X0, Y, perm_in_aa(Z, Y))
U4_GA(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → PERM_IN_AA(Z, Y)
PERM_IN_AA(X, .(X0, Y)) → U3_AA(X, X0, Y, app1_in_aga(X1, .(X0, X2), X))
PERM_IN_AA(X, .(X0, Y)) → APP1_IN_AGA(X1, .(X0, X2), X)
U3_AA(X, X0, Y, app1_out_aga(X1, .(X0, X2), X)) → U4_AA(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
U3_AA(X, X0, Y, app1_out_aga(X1, .(X0, X2), X)) → APP2_IN_GAA(X1, X2, Z)
U4_AA(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → U5_AA(X, X0, Y, perm_in_aa(Z, Y))
U4_AA(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → PERM_IN_AA(Z, Y)
perm_in_ga(X, .(X0, Y)) → U3_ga(X, X0, Y, app1_in_agg(X1, .(X0, X2), X))
app1_in_agg(.(X0, X), Y, .(X0, Z)) → U1_agg(X0, X, Y, Z, app1_in_aga(X, Y, Z))
app1_in_aga(.(X0, X), Y, .(X0, Z)) → U1_aga(X0, X, Y, Z, app1_in_aga(X, Y, Z))
app1_in_aga([], Y, Y) → app1_out_aga([], Y, Y)
U1_aga(X0, X, Y, Z, app1_out_aga(X, Y, Z)) → app1_out_aga(.(X0, X), Y, .(X0, Z))
U1_agg(X0, X, Y, Z, app1_out_aga(X, Y, Z)) → app1_out_agg(.(X0, X), Y, .(X0, Z))
app1_in_agg([], Y, Y) → app1_out_agg([], Y, Y)
U3_ga(X, X0, Y, app1_out_agg(X1, .(X0, X2), X)) → U4_ga(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
app2_in_gaa(.(X0, X), Y, .(X0, Z)) → U2_gaa(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
app2_in_aaa(.(X0, X), Y, .(X0, Z)) → U2_aaa(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
app2_in_aaa([], Y, Y) → app2_out_aaa([], Y, Y)
U2_aaa(X0, X, Y, Z, app2_out_aaa(X, Y, Z)) → app2_out_aaa(.(X0, X), Y, .(X0, Z))
U2_gaa(X0, X, Y, Z, app2_out_aaa(X, Y, Z)) → app2_out_gaa(.(X0, X), Y, .(X0, Z))
app2_in_gaa([], Y, Y) → app2_out_gaa([], Y, Y)
U4_ga(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → U5_ga(X, X0, Y, perm_in_aa(Z, Y))
perm_in_aa(X, .(X0, Y)) → U3_aa(X, X0, Y, app1_in_aga(X1, .(X0, X2), X))
U3_aa(X, X0, Y, app1_out_aga(X1, .(X0, X2), X)) → U4_aa(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
U4_aa(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → U5_aa(X, X0, Y, perm_in_aa(Z, Y))
perm_in_aa([], []) → perm_out_aa([], [])
U5_aa(X, X0, Y, perm_out_aa(Z, Y)) → perm_out_aa(X, .(X0, Y))
U5_ga(X, X0, Y, perm_out_aa(Z, Y)) → perm_out_ga(X, .(X0, Y))
perm_in_ga([], []) → perm_out_ga([], [])
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDP
APP2_IN_AAA(.(X0, X), Y, .(X0, Z)) → APP2_IN_AAA(X, Y, Z)
perm_in_ga(X, .(X0, Y)) → U3_ga(X, X0, Y, app1_in_agg(X1, .(X0, X2), X))
app1_in_agg(.(X0, X), Y, .(X0, Z)) → U1_agg(X0, X, Y, Z, app1_in_aga(X, Y, Z))
app1_in_aga(.(X0, X), Y, .(X0, Z)) → U1_aga(X0, X, Y, Z, app1_in_aga(X, Y, Z))
app1_in_aga([], Y, Y) → app1_out_aga([], Y, Y)
U1_aga(X0, X, Y, Z, app1_out_aga(X, Y, Z)) → app1_out_aga(.(X0, X), Y, .(X0, Z))
U1_agg(X0, X, Y, Z, app1_out_aga(X, Y, Z)) → app1_out_agg(.(X0, X), Y, .(X0, Z))
app1_in_agg([], Y, Y) → app1_out_agg([], Y, Y)
U3_ga(X, X0, Y, app1_out_agg(X1, .(X0, X2), X)) → U4_ga(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
app2_in_gaa(.(X0, X), Y, .(X0, Z)) → U2_gaa(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
app2_in_aaa(.(X0, X), Y, .(X0, Z)) → U2_aaa(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
app2_in_aaa([], Y, Y) → app2_out_aaa([], Y, Y)
U2_aaa(X0, X, Y, Z, app2_out_aaa(X, Y, Z)) → app2_out_aaa(.(X0, X), Y, .(X0, Z))
U2_gaa(X0, X, Y, Z, app2_out_aaa(X, Y, Z)) → app2_out_gaa(.(X0, X), Y, .(X0, Z))
app2_in_gaa([], Y, Y) → app2_out_gaa([], Y, Y)
U4_ga(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → U5_ga(X, X0, Y, perm_in_aa(Z, Y))
perm_in_aa(X, .(X0, Y)) → U3_aa(X, X0, Y, app1_in_aga(X1, .(X0, X2), X))
U3_aa(X, X0, Y, app1_out_aga(X1, .(X0, X2), X)) → U4_aa(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
U4_aa(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → U5_aa(X, X0, Y, perm_in_aa(Z, Y))
perm_in_aa([], []) → perm_out_aa([], [])
U5_aa(X, X0, Y, perm_out_aa(Z, Y)) → perm_out_aa(X, .(X0, Y))
U5_ga(X, X0, Y, perm_out_aa(Z, Y)) → perm_out_ga(X, .(X0, Y))
perm_in_ga([], []) → perm_out_ga([], [])
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
↳ PiDP
APP2_IN_AAA(.(X0, X), Y, .(X0, Z)) → APP2_IN_AAA(X, Y, Z)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PiDP
↳ PiDP
APP2_IN_AAA → APP2_IN_AAA
APP2_IN_AAA → APP2_IN_AAA
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
APP1_IN_AGA(.(X0, X), Y, .(X0, Z)) → APP1_IN_AGA(X, Y, Z)
perm_in_ga(X, .(X0, Y)) → U3_ga(X, X0, Y, app1_in_agg(X1, .(X0, X2), X))
app1_in_agg(.(X0, X), Y, .(X0, Z)) → U1_agg(X0, X, Y, Z, app1_in_aga(X, Y, Z))
app1_in_aga(.(X0, X), Y, .(X0, Z)) → U1_aga(X0, X, Y, Z, app1_in_aga(X, Y, Z))
app1_in_aga([], Y, Y) → app1_out_aga([], Y, Y)
U1_aga(X0, X, Y, Z, app1_out_aga(X, Y, Z)) → app1_out_aga(.(X0, X), Y, .(X0, Z))
U1_agg(X0, X, Y, Z, app1_out_aga(X, Y, Z)) → app1_out_agg(.(X0, X), Y, .(X0, Z))
app1_in_agg([], Y, Y) → app1_out_agg([], Y, Y)
U3_ga(X, X0, Y, app1_out_agg(X1, .(X0, X2), X)) → U4_ga(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
app2_in_gaa(.(X0, X), Y, .(X0, Z)) → U2_gaa(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
app2_in_aaa(.(X0, X), Y, .(X0, Z)) → U2_aaa(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
app2_in_aaa([], Y, Y) → app2_out_aaa([], Y, Y)
U2_aaa(X0, X, Y, Z, app2_out_aaa(X, Y, Z)) → app2_out_aaa(.(X0, X), Y, .(X0, Z))
U2_gaa(X0, X, Y, Z, app2_out_aaa(X, Y, Z)) → app2_out_gaa(.(X0, X), Y, .(X0, Z))
app2_in_gaa([], Y, Y) → app2_out_gaa([], Y, Y)
U4_ga(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → U5_ga(X, X0, Y, perm_in_aa(Z, Y))
perm_in_aa(X, .(X0, Y)) → U3_aa(X, X0, Y, app1_in_aga(X1, .(X0, X2), X))
U3_aa(X, X0, Y, app1_out_aga(X1, .(X0, X2), X)) → U4_aa(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
U4_aa(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → U5_aa(X, X0, Y, perm_in_aa(Z, Y))
perm_in_aa([], []) → perm_out_aa([], [])
U5_aa(X, X0, Y, perm_out_aa(Z, Y)) → perm_out_aa(X, .(X0, Y))
U5_ga(X, X0, Y, perm_out_aa(Z, Y)) → perm_out_ga(X, .(X0, Y))
perm_in_ga([], []) → perm_out_ga([], [])
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ PiDP
APP1_IN_AGA(.(X0, X), Y, .(X0, Z)) → APP1_IN_AGA(X, Y, Z)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ NonTerminationProof
↳ PiDP
APP1_IN_AGA(Y) → APP1_IN_AGA(Y)
APP1_IN_AGA(Y) → APP1_IN_AGA(Y)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
U4_AA(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → PERM_IN_AA(Z, Y)
PERM_IN_AA(X, .(X0, Y)) → U3_AA(X, X0, Y, app1_in_aga(X1, .(X0, X2), X))
U3_AA(X, X0, Y, app1_out_aga(X1, .(X0, X2), X)) → U4_AA(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
perm_in_ga(X, .(X0, Y)) → U3_ga(X, X0, Y, app1_in_agg(X1, .(X0, X2), X))
app1_in_agg(.(X0, X), Y, .(X0, Z)) → U1_agg(X0, X, Y, Z, app1_in_aga(X, Y, Z))
app1_in_aga(.(X0, X), Y, .(X0, Z)) → U1_aga(X0, X, Y, Z, app1_in_aga(X, Y, Z))
app1_in_aga([], Y, Y) → app1_out_aga([], Y, Y)
U1_aga(X0, X, Y, Z, app1_out_aga(X, Y, Z)) → app1_out_aga(.(X0, X), Y, .(X0, Z))
U1_agg(X0, X, Y, Z, app1_out_aga(X, Y, Z)) → app1_out_agg(.(X0, X), Y, .(X0, Z))
app1_in_agg([], Y, Y) → app1_out_agg([], Y, Y)
U3_ga(X, X0, Y, app1_out_agg(X1, .(X0, X2), X)) → U4_ga(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
app2_in_gaa(.(X0, X), Y, .(X0, Z)) → U2_gaa(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
app2_in_aaa(.(X0, X), Y, .(X0, Z)) → U2_aaa(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
app2_in_aaa([], Y, Y) → app2_out_aaa([], Y, Y)
U2_aaa(X0, X, Y, Z, app2_out_aaa(X, Y, Z)) → app2_out_aaa(.(X0, X), Y, .(X0, Z))
U2_gaa(X0, X, Y, Z, app2_out_aaa(X, Y, Z)) → app2_out_gaa(.(X0, X), Y, .(X0, Z))
app2_in_gaa([], Y, Y) → app2_out_gaa([], Y, Y)
U4_ga(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → U5_ga(X, X0, Y, perm_in_aa(Z, Y))
perm_in_aa(X, .(X0, Y)) → U3_aa(X, X0, Y, app1_in_aga(X1, .(X0, X2), X))
U3_aa(X, X0, Y, app1_out_aga(X1, .(X0, X2), X)) → U4_aa(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
U4_aa(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → U5_aa(X, X0, Y, perm_in_aa(Z, Y))
perm_in_aa([], []) → perm_out_aa([], [])
U5_aa(X, X0, Y, perm_out_aa(Z, Y)) → perm_out_aa(X, .(X0, Y))
U5_ga(X, X0, Y, perm_out_aa(Z, Y)) → perm_out_ga(X, .(X0, Y))
perm_in_ga([], []) → perm_out_ga([], [])
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
U4_AA(X, X0, Y, X1, X2, app2_out_gaa(X1, X2, Z)) → PERM_IN_AA(Z, Y)
PERM_IN_AA(X, .(X0, Y)) → U3_AA(X, X0, Y, app1_in_aga(X1, .(X0, X2), X))
U3_AA(X, X0, Y, app1_out_aga(X1, .(X0, X2), X)) → U4_AA(X, X0, Y, X1, X2, app2_in_gaa(X1, X2, Z))
app1_in_aga(.(X0, X), Y, .(X0, Z)) → U1_aga(X0, X, Y, Z, app1_in_aga(X, Y, Z))
app1_in_aga([], Y, Y) → app1_out_aga([], Y, Y)
app2_in_gaa(.(X0, X), Y, .(X0, Z)) → U2_gaa(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
app2_in_gaa([], Y, Y) → app2_out_gaa([], Y, Y)
U1_aga(X0, X, Y, Z, app1_out_aga(X, Y, Z)) → app1_out_aga(.(X0, X), Y, .(X0, Z))
U2_gaa(X0, X, Y, Z, app2_out_aaa(X, Y, Z)) → app2_out_gaa(.(X0, X), Y, .(X0, Z))
app2_in_aaa(.(X0, X), Y, .(X0, Z)) → U2_aaa(X0, X, Y, Z, app2_in_aaa(X, Y, Z))
app2_in_aaa([], Y, Y) → app2_out_aaa([], Y, Y)
U2_aaa(X0, X, Y, Z, app2_out_aaa(X, Y, Z)) → app2_out_aaa(.(X0, X), Y, .(X0, Z))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
U4_AA(X, app2_out_gaa(X1)) → PERM_IN_AA
U3_AA(app1_out_aga(X1, ., X)) → U4_AA(X, app2_in_gaa(X1))
PERM_IN_AA → U3_AA(app1_in_aga(.))
app1_in_aga(Y) → U1_aga(Y, app1_in_aga(Y))
app1_in_aga(Y) → app1_out_aga([], Y, Y)
app2_in_gaa(.) → U2_gaa(app2_in_aaa)
app2_in_gaa([]) → app2_out_gaa([])
U1_aga(Y, app1_out_aga(X, Y, Z)) → app1_out_aga(., Y, .)
U2_gaa(app2_out_aaa(X)) → app2_out_gaa(.)
app2_in_aaa → U2_aaa(app2_in_aaa)
app2_in_aaa → app2_out_aaa([])
U2_aaa(app2_out_aaa(X)) → app2_out_aaa(.)
app1_in_aga(x0)
app2_in_gaa(x0)
U1_aga(x0, x1)
U2_gaa(x0)
app2_in_aaa
U2_aaa(x0)
PERM_IN_AA → U3_AA(U1_aga(., app1_in_aga(.)))
PERM_IN_AA → U3_AA(app1_out_aga([], ., .))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
U4_AA(X, app2_out_gaa(X1)) → PERM_IN_AA
U3_AA(app1_out_aga(X1, ., X)) → U4_AA(X, app2_in_gaa(X1))
PERM_IN_AA → U3_AA(app1_out_aga([], ., .))
PERM_IN_AA → U3_AA(U1_aga(., app1_in_aga(.)))
app1_in_aga(Y) → U1_aga(Y, app1_in_aga(Y))
app1_in_aga(Y) → app1_out_aga([], Y, Y)
app2_in_gaa(.) → U2_gaa(app2_in_aaa)
app2_in_gaa([]) → app2_out_gaa([])
U1_aga(Y, app1_out_aga(X, Y, Z)) → app1_out_aga(., Y, .)
U2_gaa(app2_out_aaa(X)) → app2_out_gaa(.)
app2_in_aaa → U2_aaa(app2_in_aaa)
app2_in_aaa → app2_out_aaa([])
U2_aaa(app2_out_aaa(X)) → app2_out_aaa(.)
app1_in_aga(x0)
app2_in_gaa(x0)
U1_aga(x0, x1)
U2_gaa(x0)
app2_in_aaa
U2_aaa(x0)
U3_AA(app1_out_aga([], ., y1)) → U4_AA(y1, app2_out_gaa([]))
U3_AA(app1_out_aga(., ., y1)) → U4_AA(y1, U2_gaa(app2_in_aaa))
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
U3_AA(app1_out_aga([], ., y1)) → U4_AA(y1, app2_out_gaa([]))
U4_AA(X, app2_out_gaa(X1)) → PERM_IN_AA
U3_AA(app1_out_aga(., ., y1)) → U4_AA(y1, U2_gaa(app2_in_aaa))
PERM_IN_AA → U3_AA(app1_out_aga([], ., .))
PERM_IN_AA → U3_AA(U1_aga(., app1_in_aga(.)))
app1_in_aga(Y) → U1_aga(Y, app1_in_aga(Y))
app1_in_aga(Y) → app1_out_aga([], Y, Y)
app2_in_gaa(.) → U2_gaa(app2_in_aaa)
app2_in_gaa([]) → app2_out_gaa([])
U1_aga(Y, app1_out_aga(X, Y, Z)) → app1_out_aga(., Y, .)
U2_gaa(app2_out_aaa(X)) → app2_out_gaa(.)
app2_in_aaa → U2_aaa(app2_in_aaa)
app2_in_aaa → app2_out_aaa([])
U2_aaa(app2_out_aaa(X)) → app2_out_aaa(.)
app1_in_aga(x0)
app2_in_gaa(x0)
U1_aga(x0, x1)
U2_gaa(x0)
app2_in_aaa
U2_aaa(x0)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
U3_AA(app1_out_aga([], ., y1)) → U4_AA(y1, app2_out_gaa([]))
U4_AA(X, app2_out_gaa(X1)) → PERM_IN_AA
U3_AA(app1_out_aga(., ., y1)) → U4_AA(y1, U2_gaa(app2_in_aaa))
PERM_IN_AA → U3_AA(app1_out_aga([], ., .))
PERM_IN_AA → U3_AA(U1_aga(., app1_in_aga(.)))
app2_in_aaa → U2_aaa(app2_in_aaa)
app2_in_aaa → app2_out_aaa([])
U2_gaa(app2_out_aaa(X)) → app2_out_gaa(.)
U2_aaa(app2_out_aaa(X)) → app2_out_aaa(.)
app1_in_aga(Y) → U1_aga(Y, app1_in_aga(Y))
app1_in_aga(Y) → app1_out_aga([], Y, Y)
U1_aga(Y, app1_out_aga(X, Y, Z)) → app1_out_aga(., Y, .)
app1_in_aga(x0)
app2_in_gaa(x0)
U1_aga(x0, x1)
U2_gaa(x0)
app2_in_aaa
U2_aaa(x0)
app2_in_gaa(x0)
↳ Prolog
↳ PrologToPiTRSProof
↳ PrologToPiTRSProof
↳ PiTRS
↳ DependencyPairsProof
↳ PiDP
↳ DependencyGraphProof
↳ AND
↳ PiDP
↳ PiDP
↳ PiDP
↳ UsableRulesProof
↳ PiDP
↳ PiDPToQDPProof
↳ QDP
↳ Narrowing
↳ QDP
↳ Narrowing
↳ QDP
↳ UsableRulesProof
↳ QDP
↳ QReductionProof
↳ QDP
↳ NonTerminationProof
U3_AA(app1_out_aga([], ., y1)) → U4_AA(y1, app2_out_gaa([]))
U4_AA(X, app2_out_gaa(X1)) → PERM_IN_AA
U3_AA(app1_out_aga(., ., y1)) → U4_AA(y1, U2_gaa(app2_in_aaa))
PERM_IN_AA → U3_AA(app1_out_aga([], ., .))
PERM_IN_AA → U3_AA(U1_aga(., app1_in_aga(.)))
app2_in_aaa → U2_aaa(app2_in_aaa)
app2_in_aaa → app2_out_aaa([])
U2_gaa(app2_out_aaa(X)) → app2_out_gaa(.)
U2_aaa(app2_out_aaa(X)) → app2_out_aaa(.)
app1_in_aga(Y) → U1_aga(Y, app1_in_aga(Y))
app1_in_aga(Y) → app1_out_aga([], Y, Y)
U1_aga(Y, app1_out_aga(X, Y, Z)) → app1_out_aga(., Y, .)
app1_in_aga(x0)
U1_aga(x0, x1)
U2_gaa(x0)
app2_in_aaa
U2_aaa(x0)
U3_AA(app1_out_aga([], ., y1)) → U4_AA(y1, app2_out_gaa([]))
U4_AA(X, app2_out_gaa(X1)) → PERM_IN_AA
U3_AA(app1_out_aga(., ., y1)) → U4_AA(y1, U2_gaa(app2_in_aaa))
PERM_IN_AA → U3_AA(app1_out_aga([], ., .))
PERM_IN_AA → U3_AA(U1_aga(., app1_in_aga(.)))
app2_in_aaa → U2_aaa(app2_in_aaa)
app2_in_aaa → app2_out_aaa([])
U2_gaa(app2_out_aaa(X)) → app2_out_gaa(.)
U2_aaa(app2_out_aaa(X)) → app2_out_aaa(.)
app1_in_aga(Y) → U1_aga(Y, app1_in_aga(Y))
app1_in_aga(Y) → app1_out_aga([], Y, Y)
U1_aga(Y, app1_out_aga(X, Y, Z)) → app1_out_aga(., Y, .)